#ifndef _COMMUNICATION_DEVICE_FINGERPRINT_HEAD_H
#define _COMMUNICATION_DEVICE_FINGERPRINT_HEAD_H
#include "communication-device.h"
#include "Fingerprint-manager.h"
#include <map>
/**
 * 门锁社保类
 */
class CommunicationDeviceFingerPrint : public CommunicationDevice
{
public:
    CommunicationDeviceFingerPrint(FingerprintManager *fingerPrintManager);
    void communication(SmartDeviceNetProtocol &netprotocol, NetCommunication *netobj);
    void clear(SmartDeviceNetProtocol &netprotocol, NetCommunication *netobj);
    void add(SmartDeviceNetProtocol &netprotocol, NetCommunication *netobj);
    void remove(SmartDeviceNetProtocol &netprotocol, NetCommunication *netobj);
    void replay(NetCommunication *netobj, const string &command, const string &errmsg = "", const string &data = "");

private:
    FingerprintManager *fingerPrintManager;
    typedef void (CommunicationDeviceFingerPrint::*funcation_t)(SmartDeviceNetProtocol &, NetCommunication *);
    map<string, funcation_t> handle;
};

#endif